The present invention relates to a method and system for providing a user interface for application programs. More specifically, the present invention provides a method and system for providing a graphical user interface for application programs implemented with component architectures such as COM (Component Object Model), DCOM (Distributed Component Object Model), CORBA (Common Object Request Broker Architecture) and the like.
Applications programs with graphical user interfaces (GUI's) are well known and have existed since at least the Xerox Star computer. Initially, such user interfaces were written specifically for each application program, effectively from scratch, and thus required a significant amount of effort to program and debug. More recently GUI's have been implemented with frameworks or architectures provided by operating systems such as Apple's Macintosh or Microsoft's Windows, or by user interface systems such as the X Windows system. In addition to simplifying the construction of a user interface for an application program, each of these frameworks and systems could provide an interface with a common look and feel for application programs implemented under it. For example, most application programs implemented for Apple's Macintosh allowed users to delete files by dragging them to a trashcan icon.
While such GUI's are a significant improvement over early hard-coded GUI's, they still suffer from some disadvantages. For example, the GUI for an application program is usually fixed, and can not easily be updated to include new program features or capabilities without recompiling or reinstalling the entire application program. This is becoming especially problematic as application programs are now being implemented with component architectures, such as COM, DCOM, CORBA and the like, and such architectures permit new capabilities and/or features to be added to existing application programs by adding or changing appropriate modules of the program. To date, the updating of the GUI for such component implemented programs has not been easy to accomplish.
A further disadvantage exists in that, while a common look and feel may be available for programs implemented in a particular operating system or GUI system, this look and feel is generally not independent of the operating system or GUI system and thus the user must be retrained, to some extent, to use even the same program when it is run on a different operating system or GUI system.
A relatively recent development in user interfaces has been the adoption and acceptance of the world wide web and it's associated html-based browser paradigm. Despite limitations in early versions of html, the web browser paradigm is now widely employed and most users are familiar with it to some extent. Recent versions of html, especially dynamic html (DHTML), have removed some of the limitations of earlier versions, such as the requirement to employ java applets or to reload the entire page in order to update material on a web page. However, html-based browsers are still limited in the uses to which they can be put and they do not, by themselves, provide the services and features required to implement a GUI for an application program, especially not for an application program implemented in a component architecture.
It is desired to have a user interface method and system which allows the web browser paradigm, or the like, to be employed as the GUI for application programs implemented with a component architecture.